Skip to main content

Full text of "Sinc Link"

See other formats


TIMER-SINELAIA USERS CLUB 


NEWSLETTER 


Toronto, Ontario 


PRINTED IN CANADA 


Se _ 
~~ 


Trade Mark 


B6146 


NOVEMBER 1984 VOL 2/NO.6 


EXECUTIVE OFFICERS 


PRESIDENT: George Chambers 
LIBRARIAN: Martin Mauk 
ASS’T LIBRARIANS: Y. Franken, 

D. Cooper, 

T. Haller 
TREASURER: Greg Lloyd 
NEWS EBITORS: Stan Protrawski; 

John Roach 
ACTIVITY DIRECTOR: Ian Roberts 
LIASON OFFICER (Qut-of-town members): Chris Hart 
Dike Mitchell 


LETTER FROM THE PRESIDENT 


It fs just a year since our club commenced operating with a 
little more formal structure to it. Overall, we have had a successful 


year. Two areas in particular have been outstanding, 1.0. our 
newsletter Aas been published on a regular basis and with substantial 
content; and we have had a good series of hardware-software 


demonstrations at our meetings, 


We have planned some Improvements to cur newsletter, namely two 
or three menmber-columnists, who will cover Specific areas of interest 
1.6,: telecommunrcations; 2868; new products. 


Improvements are also being made to our program library and in 
Servicing eur out-of-town members needs. These two aspects consume a 
lot of time and we are attempting to streamline this operation. 


Your executive will be considering other ways of improving club 
operation. However, often these proposals Entail more work, therfore; 
they can only be implemented on the basis of faving volunteers come 
Forward. This has not been a problem to date, but we invite anyone to 
come forward and volunteer your services, 


Keeping the previous comment in mind we would welcome your 
comments-suggestions on how the club could better serve member needs. 
O0ut-o0f-town members may write to me at 14 Richome Court, Scarborough, 
Ontario, MLK 2Y1 

incidentally, at our last meeting 15 out of the 38 members 
present stated that they had the 752829 computer. A whole new world is 
opening fer our club! 


Yours in Computing 
George Chambers 
(President) 


PAGE 2 


STORE BASIC ON EPROM WITH AN EPROM PROGRAMMER 
by Virgil Roman 


Now you can store all your Basic or Machine Code programs on an 
Eprom chip and read them back in an instant. If you need a piece of 
hardware that can program the 2716, 2732 and 2764 Eproms compatible 
with all ZX-S81/Timex computers, the "Programmer" is just what I 
recommend because it is very cost efficient. 


Before I describe the system, let me say a few words about its 
simplicity; there is nothing complicated about it! The schematics have 
been improved by Rompak. The board design and artwork have been done 
by a small electronic company here in Toronto. The circuit is very 
simple and works very well. It comes completely assembled and tested, 
or in kit form for people with electronic background. 


Eproms are solid state non-volatile (does not lose memory when 
computer switched of) circuit memory devices. They can be programmed 
by .applying the necessary voltages and enable signals. It will not 
lose the stored data when the computer is turned off. They can be 
erased and then reprogrammed by exposing them by exposing them to 
ultra-violet light which will set all switches to one. 


The Eprom Programmer plugs into the back of the computer and can 
ne accessed with POKE commands or Machine Code. A 25 volt regulated 
power supply is required for 2716 and 27352 Esroms and a 21 volt power 
supply is required the 2764 Eprom. A "read board" is mapped to the 
unused 88-15: area for retrieving the programs stored on Eprom is also 
necessary (like the Hunter board). 


Operating The "Programmer" 


Pigg the Eprom (2764) chip into the 28-pin socket, and note the 
polarity. I you are using as Eprom with 24 pins (2716 or 2732), pin 
#1 of ‘the Eprom should go into pin H3 of the 28-pin socket íi.e. down 
2 positions). Turn the computer on and make sure the "K" cursor 
appears. If it does, you are ready to "burn" an Eprom. Turn the 
external power supply to the appropraite voltage. fi.e. 21 or 25 
volts). 


Hiemary Allocations 


The Eeron burner operates above Ramtop starting at address 
32768: i.e. POKE 32768,2405 will burn 295 into the first address of the 
Eprom, which can be read back into a READ board (Hunter, Rompak, etc.) 
at address 8192. The new Ramtop will be: 


POKE 16388,254 
POKE 16389,116 
NEW 

ENTER 


PAGE 3 
This puts the new Ramtop at 29950 (74FE Hex). 


To burn a Basic program on Eprom, we need a Machine Code routine 
to take the Basic program from the computer's memory and put ("burn") 
it into the Eprom. This M/L routine is called "Burning Routine". Once 
the Basic program is safe on the Eprom, we need a Machine Code 
routine, when called by a RAND USR command (i.e. RAND USR 8192), to 
stuff it back into RAM memory and run it. This machine code routine is 
called the "Booter Routine”. Both routines are provided in the 
instruction sheets and should be POKEd above the new RAMTOP. 


Circuit Description 


There are two separate circuit sections. Reter to the schematic. 
The first section is memory write, the second circuit will decode the 
pulse, invert the signal and time enable the pulse to S6 ms. maximum 
all which is necessary for burning an Eprom. 


Component Level Description 


When a memory write is performed, the P4LS138 chip will decode 
this. The address range of 32768 - 4959 is outside of your 16K RAM 
pack and will not interfere with the normal function of your ZX/Timex 
computer. This pulse is inverted with a 79500 chip to clock the 
address and data into the 74LS273 chips. The signal also is used to 
trigger the 355 timer chip which will "burn" the Eprom with data and 
addresses stored in the ?4LS273 chips. A  39€6K resistor and .1 uf 
capacitor controls the length of the timing pulse. 


Recommendations 


After using the "Programmer" for awhile, I have found it to be 
most useful. AS a matter of fact, I consider it to be the most useful 
piece of hardware I have ever bought besides the computer itself. I 
strongly recommend it. The "Programmer" follows the programming 
specifications of INTEL memory devices and will be compatible with 
most Eproms on the market. 


For more details on Eproms, read the article, "COMPATIBILITY 
BETWEEN EPPONS" by H. Pun - Electronics Today (October 1784 - page 
299). 


If vou deide to purchase the "Programmer", by all means, go 
ahead and order it and you will be glad you did: 


Integrated Data Systems: (416) 466-3371 
D& D Electronics Engineering Design: (416) 491-7993 


PABE 4. 


SYNCBITS 
by Ian Robertsan 


This column will, hopefully, be a regular item for our future 
newsletters. It 15 our intent ta try and keep you up te date on what 
is happening in the world of TIMEX SINCLAIR computers, i.e., ZX-81, 
TS18800.  TS1S5908, T5269 and the GL. Maybe even an item, now and then, 
on the Spectrum. “' = 
Resources 
ZX81/7S18989; 


There are still some local vendors to draw on. For example; 
Integrated Data Systems- operated by fellow club member Ian Singer, 
Gladstone Electronics, Software Shop and from the publishers of 
Electronics Today or Computers Now magazines. A large source of Timex 
products is Timex themselves in Markham, on Hood Ave., but you must 
shop. in person at their Warranty Service store located at their plant. 
If you phone they will simply tell you that Timex is no longer in the 
computer business. The price list is; TS1999 $49.99, TS1816 RAM 16K 
$25.080,T92040 printer $89.69 and all software at $5.90 each. Gladstone 
have reduced their TS199@ price to $29.95, i 


7582468 


Again there are a couple of local sources; Integrated Data. 
Systems and Gladstone Electronics. Gladstone have just reduced their 
price for the 2968 to $179.95, aS well they have the Timex 2968 
Technical Manual for $34.95, 
Sams, the Indianapolis technical book publisher now has the 
Timex Sinclair 2468 Intermediate/Advanced Guide available at $9.95 US. 
- I purchased my copy from E. Arthur Brown and the book seems to 
—-Ccüampliment the Timex Technical Manual. 


QL 

Constant monitoring of the U.K. computer press indicates that 
all is not well with the current model of the SL. Everyone agrees that 
while the 8L is a great idea, the implimentation of this idea is less 
than great. For example- "superbasic" is far from super, in fact ot's 
reputed to be slow and tedious - GSDOS needs a lot of work to meet 
industry standards and the microdrives do not load and save with the 
integrity required in business or serious use. The biggest complaint 
is with the size of memory, apparantly 128K is not large enough to 
utilize the much vaunted "multi-tasking" aspect of the 68982880. ther are 
even complaints about the quality of the PSION software packaged with 
the QL. Hopefully, all of this will be corrected prior to the GL 
entering the North American market by Sinclair Research in Boston via: 
mail order, next Spring 


PAGE 5 


Hardware/So/tware:; 


The big item in the news lately seems to be the number of 
"spectrum Compatible” ROM devices being sold. I have ordered the 
Russell Electronics ” ROMSWITCH" from E, Arthur Brown and look 
forward to being able to use some of those 5,999 or so Spectrum 
programs that are available in the U.K. There is also a U.K. supplier 
of the Spectrum ROM, which we will report on when the club receives 
pur goods ordered. 


Apparantly the 2868 could be revived, as rumours persist that 
several parties are interested in either manufacturing or distributing 
this product. Only time (definately MOT Timex) will tell. 


I have learned from Westridge Communications that their new 
version of the 28056 modem software is issued ffor distribution and 
that they will not be producing the 2958 "expansion box". In fact they 
say that they never even heard of this item before. Rumour laid to 
rest! 


Magazines; 


If you are looking for  newstand magazines tor our computers 
there are only 2 available, and they are both from the U.K.: "Your 
Computer", published monthly and "ZX Computing", published bi-monthly. 
Both are available from Litchmans bookstores in the Toronto area. 


If you want really good (510090 and 2068 U.S. dedicated magazines 
there are only 3: "Syntax" published monthly by The Harvard Group, 
Bolton Road, Harvard, Mass. @1451, at an incredible price of $98.848 
U.S. per year. "Syncware News” published monthly by Thomas B. Woods 
(of ZX PRO/FILE tame), P.O. Box 64, Jefferson, N.H., 93583, at a more 
reasonable $16.95 U.S. per year. 

"T-S Horizons” published monthly by T-S Horizons, Subscription 
Dept., 2002 Summit Street, Portsmouth, OH., 45662, at $21.00 U.S. per 
year. 


8K EEPROM BOARD 
by John Roach 

In this project we are going to build a non-volatile memory 
expansion board that doesn’t require batteries or a separate PROM 
blaster card. Everything we need will be on one simple card. Your cost 
to buy one of the popular PROM cards along with a separate programmer 
would probably be at least $158 dollars. Our project, hopefully, 
should cost less than $59. 


The heart of the board is a Seeq Technology &8K x € EEPROM, a 
memory chip that can be both erased and written to with only 5 Vdc. 
Once the chip has been programmed and the power to the computer turned 
off, the memory is permanent - even if you remove the chip from the 
board. This chip is also the most expensive component on the board. In 


^. 


PAGE 6 


Single quantity the price is $35. However, if there is enough interest 
in building the project we can get a good quantity discount. 


Circuit Operation 


Our circuit is designed to let the 8K of memory reside in the 
empty 8K to 16K portion of the memory map. When addressing this area, 
address lines A15 and Alá will be low and line 13 high. The MREG, 
memory request line is alsa low. Line A13 is first inverted through 
ICia so that when 102 sees all its inputs low, it puts its output low. 
This signal has 3 jobs to do. The first is to disable the ROM in the 
computer to prevent memory ghosting. This we do by inverting the low 
output of IC2 through ICib putting a high on the ROMCS line on the 1/0 
bus. The second job is to enable our memory chip IC4 by putting a low 
on its CE chip enable pin. The third job we'll skip untill we look at 
a memory write cycle. For now we'll assume we are going to do a memory 
read. 


So far we've decoded the address, enabled the memory chip and if 
we're doing a read the RD line on the I/O bus should be low, it's 
directly connected to IC4's output enable pin, OE. At this point the 
byte at the memory location we've addressed is plopped out onto the 
1/0 data lines DØ to D? ending the read cycle. So far everything has 
been fairly simple, but now let's take a look at a write cycle. 


A write to the EEPROM only requires 3 volts but in order to 
program the chip the write pulse has to be 1 millisecond long. This is 
a lot longer than the 280 write pulse which is about 19 nanoseconds. 
Here's where IC3 comes into play as well as the third job required of 
IC2. When 102 sees an address in the 8K to 16K area of memory its 
Output goes low, as we saw above, the output is inverted through ICib 
and is used to enable 1C3 which forms part of a single shot pulse 
stretching circuit. When the write pulse from the 1/0 bus is applied 
to an enabled IC3, its output delivers a 1 ms. low pulse to the write 
enable pin of our memory chip and the byte on the 1/0 bus line DØ to 
D? is implanted forever into the EEPROM, or untill you do another 
write cycle to the same address. One limitation fo the chin is that 
you can only do 16,888 write cycles to any one individual byte 
address. 


One other requirement in writing to the chip is that you can 
Only overwrite a byte that is all 175. This is not a problem, if you 
refer to Listing i which is a simple program to POKE data to 
sequential addresses you will see that a check is made by PEEKing 
first and if the location does not contain all 175 we just stuff them 
in before we write in the data we want there. Typically it shouldn't 
take more than about 88 seconds to write SKbytes to our memory chip. 
In spite of all the timing requirements and only being able to 
overwrite a byte thats all 1's it's probably a good idea to include 
the write protect switch shown on the diagram. 


As far as applications for the EEPROM board, it can be used to 
store machine code programs that will run right from addresses on the 
board as the read time is 239 ns. and the computer sees it as RAM. It 
can (also store BASIC programs although they can't be run from the 


PASE 7 


board, you would simply down load the biock of memory containing the 
tokenized program to the EEPROM and up load it back to the BASIC area 
in RAM when you want to run it. 


In the conciudins portion o* this project, appearing in the next 
newsletter, we wili over construction details, PC board layouts, 
where to get parts, more software ior loading and some sugestions for 
modifications to make ine board usable oan the 2868 - both on the 


expansion bus and the cartridse dock, 


m 
23 

ES 

c 


Program Listing d 


18 REM XX EEPROM LOADER XX 
26 REM S= STARTING ADDF. GF 
3d REM DATA IN RAM, 

49 REM N= NUMBER OF BYTES -i. 
50 REM E= EEPROM START ADDRES. 
58 LET 5= 14426 

76 LET N= 20682 

38 LET E= 8280 

8S8 FOR I= D TO D+N 

99 IF PEEK (E) = 255 THEM GUTC 1.50 
19@ POKE P, 235 

119 FOR J= 1 T3 Z 

120 NEXT J 

138 POKE P, PEEK (1) 

14@ NEXT I 

159 PRINT "I’M LGADED, EH!” 
168 STOP 


PROGRAM CREDITS 
hy G.F. Chambers 


In locking through our library of pragrams, I am struck by the 
number of contributions which contain no hint of their source or 
origin. They are something like a ship without a name or a letter 
without an address, This is unfertunate because, at the very least, 
someone who went to the troubie of creating the program or entering it 
does not get appropriate credit. it also makes it difficult for the 
next user to refer back to its Grisins should the need arise. 


The introduction could be as simple 23 a two-line entry as 
follows: 


19 REM GRAPHICS DEMONSTRATICN 
26 REM FROM 22:81 PROGRAMMING MANUAL CHAPTER 18, PAGE 121 


An original program probably deserves that more credit be given 
the maker. Take a lock at the partial listing shown in the example. 
Here, the program is "n  "Autco-REun"; that is. if it is SAVEd by a 
direct command - GOTO 22292, it will SAVE itself. Then, when you LOAD 
it into your computer, it will automatically RUN or continue at 9919. 
(If you wish to use RUN ar GOTO ta start a program, the initial line 
in the program should be: 20508 9919 to enter into this routine and 
line 99348 should read PETURN?). 


oo 


PAGE 8 


To get back to the original subject, note line: 9919 LIST 
9978. This will cause the program to be listed automatically on the 
screen from line 9978 onwards. This will display any notice about the 
program you care to present. 


Several points should be noted. The listing to be displayed 
needs to be at the end of the program and not to be so lengthy that it 
exceeds the screen size (21 lines). If the listing called up in line 
9918 exceeds the screen size, it will cause a CODE S report and the 
program will stop. 


Motice that lines 9997 & 9998 contain an instruction to the user 
to press a key. This is because although the listing appears on the 
screen, the computer is still in the program operation mode and in 
fact is at line 9929 PAUSE 464: i.e. waiting for a key to be pressed 
(waiting "forever" - 4E4 sounds like the word *forever”). After a key 
is pressed, the program will proceed to the next line: 9939 GOTO 2999 
which happens to be start of the main program in the particular 
program this example was taken from. (PAUSE 4E4 = PAUSE 499@ = PAUSE 
FOREVER. See Sinclair/Timex manual, Chapter 19), 


PROGRAM EXAMPLE OF CREDITS 


9998 SAVE "METRIC" 
9918 LIST 9979 
9926 PAUSE 4E4 
9938 GOTO 2099 


9974 REM 

9971 REM 

9972 REM METRIC CONVERSION 
7978 REM 9  -—-----9----2----2-—- 
9979 REM 

99880 REM 

9982 REM AN ORIGINAL PROGRAM 
9983 REM 

9984 REM WRITTEN BY 
92985 REM G.F. CHAMBERS 
9988 REM (C) 1984 

9989 REM 

9991 REM 

9992 REM DATA TAKEN FROM 
9993 REM THE BOOK ENTITLED 
9994 REM "COMPLETE HANDYMAN'S 
9995 REM ENCYCLOPEDIA" 
9997 REM TO START PROGRAM 
9998 REM PRESS ANY KEY 


9999 REM 


uM 


PAGE 9 


TS 2068 PROGRAMMING 
by John Roach 


Recognizing UDG’s 


As you know from the manual, there are 21 User Defineable 
Graphic characters which can be assigned from CODE 144 to CODE 164. To 
show what you are doing and to keep program LISTing as clear as 
possible, it's best to use the CHR$ function rather than shifting to 
the Graphics mode. 


18 PRINT CHRE 144; CHRS 1455 CHRS 146 
It's instantly recognizable as UDG's. 
UDG Loader 


This routine is not in the manual but it saves a lot of typing 
time not using all the BIN values. 


9888 FOR g-144 TO 164 (or less) 
9819 FOR n-8 TO 7 

9929 READ a : POKE USR CHR$ q + n,a 
9938 NEXT n 

99849 RESTORE : RETURN 

90560 DATAN aras a 


Each data statement contains 8 numbers per line; each number is 
the decimal value for the binary bits in UDG character row. Each data 
statement defines one character. 


Fancy Titles 


Assign a string to T$ less than or equal to 32 characters for 
the title and a value to the variable "pa" less than 22 for PRINT AT 
line number: 


19 LET T$ = "HERE IS A PROGRAM TITLE" 
28 LET pa = 1C 
39 GOSUB 199 


44 STOP 

180 LET M = LEN T$ : IF M/2 < > INT (M/2) THEN LET T$ = T$ + " " 
: LET M = M #1 

119 FOR N = 1 TO M/2 : PRINT AT pa, 16-N5 T$ ( TO N); T$ (M – N + 


TO ): BEEP .92,2 X* N : NEXT N : RETURN 


PAGE 19 
MACHINE CODE PROGRAMMING 


The +oliowing is a list of the keyboard values when K-SCAN 
called in Msi (CALL 699 or in code: 205, 187, 2) which returns the 
value in the HL register. Note, these are all computed values so to 
find the value in H? & ?*L? we must find it ourselves. e.g., the value 
returned to HL when the number °P? 15 pressed (or left arrow) is 
57335. Therefore, to find the value contained in 'HL',: 


19 LET H = INT (57335/256) £223 
28 LET L = 57335 - (H * 256) :247 
39 PRINT "H-"jH, "L="3L 

49 STOP 


Therefore, if we were testing to see if the user was pressing 
the 75? key tor left arrow), we would first CALL 699 then LD B,223 te 
LD 0OC,247; LD A,H & CP B; LD A,L & CP C. If they matched, then continue 
on with the program. 


Whenever you're programming in machine code, do not forget that 
there are many routines in ROM that we can use (which will be 
discussed as we go along). Also, when reading articles about machine 
code, they sometimes have a useful routine which can be called. For 
example, in Toni Baker's book, "MASTERING MACHINE CODE ON YOUR ZX-S81", 
has many useful subroutines. We will be using some of them such as 
printing numbers to the screen for increasing/decreasing the scores; 
or on page 59 is a very useful routine for printing a complete picture 
or text to the screen in machine code. 


TRIVIA: 


258 baud means about 25 bytes per second; 1568 baud means about 
158 bytes per second: for LOADing or SAVEing values which is why the 
ZX-81 takes so long to LOAD or SAVE! 


BASIC PROGRAMMING 
Side Scroli a Message 


190 LET AS = "print your message with as many characters as you 
like but not less than 33, then S spaces then an asterisk (X)" 
118 LET N= 1 

120 IF AS (M + 31) = "X" THEN GOTO 119 

138 PRINT AT 18,8; AS (N TO N + 39) 

iae FOR I = 1 TO 3 

158 NEXT I 

169 LET N = M + 1 

179 GOTO 120 


LETTER FROM THE NEWS EDITORS 


Well that's it again for this Newsletter. AS you can see, with more 
submissions, we can print a varied type of Newsletter that should 
appeal to the various interests of club members. 


When submitting articles, 


write neatly 


article. 


of it 


is a written submission. 
re-typed into the Newsletter and 


PAGE 11 


please use double spacing when typing and 


All articles have to be. 


it 15 much easier for us. Also, we 
don’t have an Art Department so any drawings, 
submitted; make them neat and on a separate piece of paper from your 


etc. 


will be entered as 


So until the next flewsletter (in January), have fun programming. 


Table of ‘Key Values’ 


fO 0 00 &QIN -+ 


– 


ZOXACIONON»>VO7CXAD 


EWLINE 


eZ20<OXN 


| Hex. Value | 


' GRAPHICS 


RUBOUT 


FUNCTION 


MIN UI 


m- 


Stan & John 
News Editors 


Dec. Value 


FCEF 
FCFB 
FAFB 
F6FB 

EEFB 
DEFB 
DEDF 
EEDF 
F6DF 
FADF 
FCDF 
FCFD 
FAFD 
F6FD 

EEFD 
DEFD 
DEBF 
EEBF 
F6BF 

FABF 
FCBF 
FAFE 
F6FE 

EEFE 
DEFE 
DE7F 
EE7F 
F67F 

FA7F 

FC7F 


64751 
64763 
64251 
63227 
61179 
57083 
57055 
61151 
63199 
64223 
64735 
64765 
64253 
63229 
61181 
57085 
§7023 
61119 
63167 
64191 
64959 
64254 
63230 
61182 
57086 
56959 
61055 
63103 
64127 
64639 


A13 


Al2 
All 
A1O 
A9 
A8 
AT 
A6 
AS 
ჩ 4 
A3 
A2 
Al 
AO 


8K EEPROM BOARD 


Ici - 74LS04 
IC2 - 74L532 
IC3 - 74L5I23 
1C4 - 52B33H 


O GND 


RI 
4.7 k 
RIT 

ROTECT 


O^ O 
Sw-1 


HEX INVERTER 
QUAD OR GATE 
MONOSTAELE MULTIVIBRATOR 
6Kx8 EEPROM